﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema
    targetNamespace="http://metalx.org/i386/Functions/Loop"
    elementFormDefault="qualified"
    xmlns="http://metalx.org/i386/Functions/Loop"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

	<xsd:element name="For">
		<xsd:annotation>
			<xsd:documentation>
				Performs the included instructions and decrements CX until it reaches zero.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice maxOccurs="unbounded">
				<xsd:any/>
			</xsd:choice>
			<xsd:attribute name="type" default="Relative8">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="Relative8"/>
						<xsd:enumeration value="Relative32"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="WhileCXNotZero">
		<xsd:annotation>
			<xsd:documentation>
				Performs the included instructions until CX is zero.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice maxOccurs="unbounded">
				<xsd:any/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="WhileNotEqual">
		<xsd:annotation>
			<xsd:documentation>
				Performs the included instructions until zero flag is set.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice maxOccurs="unbounded">
				<xsd:any/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="WhileEqual">
		<xsd:annotation>
			<xsd:documentation>
				Performs the included instructions while zero flag is set.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice maxOccurs="unbounded">
				<xsd:any/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>

</xsd:schema>
